เทรน LoRA คน สัตว์ ตัวการ์ตูน หรือสิ่งของที่ต้องการด้วย Kohya GUI สำหรับ Stable Diffusion
Published in:2024-03-18 | Categories: Stable Diffusion Tutorial

เตรียมความพร้อม

ในบทความนี้ต้องการ Kohya GUI ติดตั้งอยู่ในเครื่องเรียบร้อยแล้ว

หากยังไม่ได้ทำการติดตั้งสามารถดูวิธีติดตั้งได้ ที่นี่

เตรียม Folder และไฟล์ข้อมูลเบื้อต้น

1. สร้าง Folder image เพื่อเป็นรูปตัวอย่าง และ model สำหรับเซฟ model ไว้ในที่ต้องการ

2. ใน Folder image ให้สร้าง Folder ชื่อ “100_keyword” ในตัวอย่างนี้คือ “100_montri” เลข 100 คือจำนวนครั้งที่จะเทรนในแต่ละรูป

3. ใน Folder 100_keyword ให้ใส่รูปภาพที่เราต้องการเทรนลงไปโดยมีชื่อเป็นตัวเลขเรียงไปเรื่อยๆ ถ้าเทรนด้วย SD model ให้ใช้ภาพขนาด 512x512 ถ้าใช้ SDXL model ให้ใช้ภาพขนาด 1024x1024

ใส่คำบรรยายให้กับรูปแบบอัตโนมัติ

4. เปิด Kohya GUI แล้วไปที่แถบ “Utilities -> Captioning -> BLIP Captioning”

5. เลือก Folder ที่เก็บภาพต้นฉบับ

6. ใส่ keyword ที่ต้องการเทรนในส่วนของ “Prefix to add to BLIP caption”

7. กดปุ่ม “Caption images”

8. เมื่อเสร็จเรียบร้อยจะได้ไฟล์ .txt ที่มีคำบรรยายของแต่ละรูป

ตั้งค่าเพื่อเทรน LoRA

9. Download template config ที่ทำการตั้งค่าเบื้อต้นมาแล้วด้านล่าง

SD Download ที่นี่
SDXL Download ที่นี่

10. เปิด Kohya GUI แล้วไปที่แถบ “LoRA -> Training”

11. ในส่วนของ Configuration ให้เปิดไฟล์ config ที่โหลดในขั้นตอนที่ 9

12. ในส่วนของ Pretrained model name or path ให้เลือกโมเดลต้นฉบับที่ต้องการ

13. แก้ไข Image folder ให้ไปที่เราเก็บรูปเอาไว้

14. แก้ไข Trained Model output name เป็นชื่อที่เราต้องการบันทึก

15. แก้ไข Folder -> Output folder เป็น Folder ที่เราจะบันทึก LoRA model

16. ในส่วนของ Parameters -> Samples -> Sample prompts ให้ใส่ keyword ที่เราเทรนเพื่อ generate ภาพตัวอย่างในแต่ละ epochs

17. เมื่อพร้อมแล้วให้กดปุ่ม Start training

18. รอ … ใน cmd ของ kohya จะแสดงเวลาการเทรนโดยประมาณให้เห็น

19. เมื่อทำการเทรนเสร็จแล้วใน Folder model จะมี LoRA model 6 ตัวจากการเทรน 6 Epochs

คัดเลือก LoRA Model ที่ดีที่สุด

20. ทำการเปลี่ยนชื่อไฟล์ที่ไม่มีเลขลงท้ายให้ลงท้ายด้วย 000000

21. ย้าย LoRA model ไปใน Stable Diffusion WebUI (stable-diffusion-webui\models\Lora)

22. เปิด Stable Diffusion WebUI เลือก model ให้ตรงกับ Pretrained model ในข้อ 12

23. ใน prompt ให้ใส่ keyword ที่เราเทรนและ LoRA ตัวที่ 000000 และน้ำหนักที่ 0.5

24. ในส่วนของ Script ให้ตั้งค่าตามด้านล่างเพื่อให้ WebUI สร้างภาพจาก LoRA ของแต่ละหมายเลข และน้ำหนักที่แตกต่างกัน

25. กดปุ่ม Generate และรอ …

26. เมื่อเสร็จสิ้นแล้วจะได้ grid ของ LoRA ที่ stable-diffusion-webui\output\txt2img-grids

จากรูปตัวอย่างจะเห็นได้ว่า LoRA ทำงานได้ดีที่สุดอยู่ในช่วงหมายเลข 00004 โดยใช้น้ำหนัก 0.8
หากต้องการผลลัพธ์ที่แม่นยำมากขึ้นจะต้องมีจำนวนรูปภาพมากขึ้น หรือเพิ่มตำนวนครั้งการเทรนในขั้นตอนที่ 2 หรือลองเล่นกับค่าอื่นๆ ในตัว Kohya GUI

Prev:
วิธีทำให้ Node Version Manager(nvm) ใช้ได้ใน Crontab และ Shell Script
Next:
วิธีติดตั้ง Kohya GUI (kohya_ss) เพื่อใช้เทรน Model ต่างๆ สำหรับ Stable Diffusion